Systems and Methods for a Shared Haptic Experience

ABSTRACT

One illustrative system disclosed herein includes a processor configured to: receive a first haptic effect signal, the first haptic effect signal based at least in part on a haptic event and adapted to cause a first haptic effect to be output by a first haptic output device to a first user, determine a second haptic effect based at least in part on the first haptic effect and a characteristic independent of the haptic event, generate a second haptic effect signal based at least in part on the second haptic effect, and transmit the second haptic signal to a second haptic output device. In the illustrative system, the second haptic output device is in communication with the processor, and the second haptic output device is configured to receive the second haptic effect signal and output the second haptic effect to a second user.

REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of and claims priority to U.S.application Ser. No. 14/219,882, entitled “Systems and Methods for aShared Haptic Experience,” filed on Mar. 19, 2014, which is incorporatedby reference herein in its entirety.

FIELD OF THE INVENTION

The present invention relates to the field of user interface devices.More specifically, the present invention relates to systems and methodsfor providing a shared haptic experience.

BACKGROUND

Computer users continue to desire a more interactive experience. Forexample, as video games become more interactive, demand for multiplayergames, wherein users can play with or against each other, has increased.Users may play video games with or against each other in a multitude ofways. One common way for users to play multiplayer games is through asingle game console, such as a Sony PlayStation, in which all the usersare located in close proximity to one another, often the same room, andmanipulate virtual characters through handheld controllers connected tothe game console. Users also commonly play multiplayer games over theInternet, wherein users play with or against each other from sometimesremote corners of the world, often via different kinds of devices, suchas computers, game consoles, and smart phones. Some multiplayer gamesand game systems may allow players to share audio and video content withone another. While various techniques have been used to improve themultiplayer gaming experience, there is a need for multiplayer games,game systems, and similar collaborative computing environments to allowusers to share their haptic content in order to enhance the interactiveand collaborative nature of the system.

SUMMARY

Embodiments of the present disclosure comprise systems and methods forproviding a shared haptic experience. In one embodiment, a system of thepresent disclosure may comprise a processor configured to: receive afirst haptic effect signal, the first haptic effect signal based atleast in part on a haptic event and adapted to cause a first hapticeffect to be output to a first user, determine a second haptic effectbased at least in part on the first haptic effect and a characteristicindependent of the haptic event, generate a second haptic effect signalbased at least in part on the second haptic effect, and transmit thesecond haptic signal to a second haptic output device. The system mayfurther comprise a second haptic output device in communication with theprocessor, wherein the second haptic output device is configured toreceive the second haptic effect signal and output the second hapticeffect to a second user.

In another embodiment, a method of the present disclosure may comprise:receiving a first haptic effect signal, the first haptic effect signalbased at least in part on a haptic event and adapted to cause a firsthaptic effect to be output to a first user, determining a second hapticeffect based at least in part on the first haptic effect and acharacteristic independent of the haptic event, generating a secondhaptic effect signal based at least in part on the second haptic effect,and transmitting the second haptic signal to a second haptic outputdevice. Yet another embodiment comprises a computer-readable medium forimplementing such a method.

These illustrative embodiments are mentioned not to limit or define thelimits of the present subject matter, but to provide examples to aidunderstanding thereof. Illustrative embodiments are discussed in theDetailed Description, and further description is provided there.Advantages offered by various embodiments may be further understood byexamining this specification and/or by practicing one or moreembodiments of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

A full and enabling disclosure is set forth more particularly in theremainder of the specification. The specification makes reference to thefollowing appended figures.

FIG. 1 is a block diagram showing a system for providing a shared hapticexperience in one embodiment;

FIG. 2 is another block diagram showing one embodiment of a system forproviding a shared haptic experience;

FIG. 3 shows an external view of a system for providing a shared hapticexperience in one embodiment;

FIG. 4 shows another external view of a system for providing a sharedhaptic experience in one embodiment;

FIG. 5 shows one embodiment of an external view of a system forproviding a shared haptic experience;

FIG. 6 shows an external view of a system for providing a shared hapticexperience in one embodiment;

FIG. 7 is a flowchart showing a method for providing a shared hapticexperience in one embodiment; and

FIG. 8 is a flowchart showing another method for providing a sharedhaptic experience in one embodiment.

DETAILED DESCRIPTION

Reference will now be made in detail to various and alternativeillustrative embodiments and to the accompanying drawings. Each exampleis provided by way of explanation, and not as a limitation. It will beapparent to those skilled in the art that modifications and variationscan be made. For instance, features illustrated or described as part ofone embodiment may be used in another embodiment to yield a stillfurther embodiment. Thus, it is intended that this disclosure includemodifications and variations as come within the scope of the appendedclaims and their equivalents.

Illustrative Examples of A Device for Providing a Shared HapticExperience

One illustrative embodiment of the present disclosure comprises a gamingsystem configured to provide a shared haptic experience. The gamingsystem includes one or more game consoles or other computing systemsthat are in communication with user interface devices, such as a gamecontroller, smart phone, or tablet. Such gaming systems may include, forexample, the Microsoft Xbox, Sony PlayStation, Nintendo Wii, or the SegaZone. The user interface devices may comprise and/or may be incommunication with one or more user input elements. Such elements mayinclude, for example, a button, joystick, camera, gyroscope,accelerometer, or touch-sensitive surface, any of which can be used todetect a user input alone or in combination with one another.

In the illustrative embodiment, the user input device also comprisesand/or may be in communication with one or more haptic output devices.The haptic output device receives a signal from the gaming system andoutputs a haptic effect to a user. Each haptic output device may includeone or more actuators, such as an eccentric rotating mass (ERM) motorfor providing a vibratory effect.

In the illustrative embodiment, a first user interacts with the gamingsystem through a user input device, such as a game controller, tocontrol the actions of an avatar on the screen during a game. Forexample, if the first user is playing a first-person shooting game, thenthe first user controls the first user's character to achieve some goal,such as advancing through a level. As events occur in the game, thefirst user may experience one or more haptic effects in response to thegame events. For example, in one embodiment, the first user's virtualcharacter gets shot, and in response, a haptic effect, such as avibration, is output to the first user's controller.

As video games become more interactive, demand for multiplayer games,wherein users can play with or against each other, has increased. Usersmay play video games with or against each other in a multitude of ways.Users commonly play multiplayer video games with or against one anothervia a single game console or over the Internet. Some users may wish toshare haptic feedback that they experience with one or more other users.

In the illustrative embodiment, the gaming system is adapted to sharethe first user's haptic effects with one or more other users. In theillustrative embodiment, the characteristics of the haptic effecttransmitted to a second user are based, at least in part, on the hapticeffect generated for the first user and on other factors. For example,the gaming system may generate an effect to be delivered to the seconduser by starting with the haptic effect generated for the first user andmodifying that effect based on the relative position of the first user'svirtual character to the second user's virtual character in the videogame. In one such embodiment, the strength of the haptic effecttransmitted to the second user is inversely proportional to the relativedistance between the first user's virtual character and the seconduser's virtual character in virtual space. That is, if the first user'svirtual character is standing ten feet from the second user's virtualcharacter in the video game, the haptic effect transmitted to the seconduser is weaker than if the first user's virtual character was standingthree feet from the second user's virtual character.

The description of the illustrative embodiment above is provided merelyas an example, not to limit or define the limits of the present subjectmatter. Various other embodiments of the present invention are describedherein and variations of such embodiments would be understood by one ofskill in the art. As will be discussed in further detail below, suchembodiments are not limited to gaming systems, and the systems andmethods described herein for generating haptic effects can be modifiedin any number of ways. Advantages offered by various embodiments may befurther understood by examining this specification and/or by practicingone or more embodiments of the claimed subject matter.

Illustrative Systems for a Device for Providing a Shared HapticExperience

FIG. 1 is a block diagram showing a system 100 for providing a sharedhaptic experience in one embodiment. In this example, system 100comprises a computing device 101 having a processor 102 in communicationwith other hardware via bus 106. A memory 104, which can comprise anysuitable tangible (and non-transitory) computer-readable medium such asRAM, ROM, EEPROM, or the like, embodies program components thatconfigure operation of the computing device 101. In this example,computing device 101 further comprises one or more network interfacedevices 110, input/output (I/O) interface components 112, and additionalstorage 114.

Network device 110 can represent one or more of any components thatfacilitate a network connection. Examples include, but are not limitedto, wired interfaces such as Ethernet, USB, IEEE 1394, and/or wirelessinterfaces such as IEEE 802.11, Bluetooth, or radio interfaces foraccessing cellular telephone networks (e.g., transceiver/antenna foraccessing a CDMA, GSM, UMTS, or other mobile communications network).

I/O components 112 may be used to facilitate connection to devices suchas one or more displays, keyboards, mice, joysticks, video gamecontrollers, buttons, speakers, microphones, and/or other hardware usedto input data or output data. Storage 114 represents nonvolatile storagesuch as magnetic, optical, or other storage media included in device101. Display 116 may be used to facilitate the output of one or moreimages, and may comprise, for example, a television set, a touchscreendisplay, a computer monitor, or a projector.

In this example, computing device 101 is in communication with twoexternal electronic devices (hereinafter “external devices”), firstelectronic device 118 and second electronic device 120. In someembodiments, computing device 101 may be in communication with anynumber of external electronic devices. In some embodiments, theseexternal devices may be similar, such as game controllers for use with asingle game console, like a Sony PlayStation. In other embodiments, theexternal devices may be of different types, such as smart phones,tablets, e-readers, laptop computers, desktop computers, or wearabledevices. While computing device 101 and first electronic device 118 areillustrated in FIG. 1 as separate devices, the computing device 101 andfirst electronic device 118 may comprise a single integrated devicecapable of performing the functions described in relation to computingsystem 101 as well as serving as an input and output device for theuser.

First electronic device 118 and second electronic device 120 comprise afirst haptic output device 122 and a second haptic output device 130,respectively. These haptic output devices may be configured to outputhaptic effects, for example, vibrations, changes in a perceivedcoefficient of friction, simulated textures, or surface deformations inresponse to haptic signals. Additionally or alternatively, haptic outputdevices 122 and 130 may provide haptic effects that move the surfaces ofthe external devices in a controlled manner. In some embodiments, hapticeffects may utilize an actuator coupled to a housing of the externaldevices, and some haptic effects may use multiple actuators in sequenceand/or in concert. For example, in one embodiment, a surface texture issimulated or the perceived coefficient of friction is varied (e.g.,decreased or increased) by vibrating the surface of the external devicesat different frequencies. In such an embodiment, haptic output devices122 and 130 may comprise one or more of, for example, a piezoelectricactuator, an electric motor, an electro-magnetic actuator, a voice coil,a shape memory alloy, an electro-active polymer, a solenoid, aneccentric rotating mass motor (ERM), or a linear resonant actuator(LRA).

In other embodiments, haptic output devices 122 and 130 may useelectrostatic attraction, for example by use of an electrostatic surfaceactuator, to simulate a texture or to vary the coefficient of frictionthe user feels when moving his or her finger across the surface of theexternal devices. For example, in one embodiment, haptic output devices122 and 130 comprise a device that applies voltages and currents insteadof mechanical motion to generate a haptic effect. In such an embodiment,the electrostatic actuator comprises a conducting layer and aninsulating layer. In such an embodiment, the conducting layer may be anysemiconductor or other conductive material, such as copper, aluminum,gold, or silver. And the insulating layer may be glass, plastic,polymer, or any other insulating material. Furthermore, the processor102 may operate the electrostatic actuator by applying an electricsignal to the conducting layer. In some embodiments, the electric signalmay be an AC signal that is generated by a high-voltage amplifier. Insome embodiments, the AC signal may capacitively couple the conductinglayer with an object near or touching the surface of the externaldevices. The capacitive coupling may simulate a friction coefficient ortexture on the surface of the external devices.

For example, in one embodiment, the surface of first electronic device118 is smooth, but the capacitive coupling may produce an attractiveforce between an object, such as a user's hand, and the surface of firstelectronic device 118. In some embodiments, varying the levels ofattraction between the object and the conducting layer can create orvary a simulated texture on an object moving across the surface of theexternal devices. Furthermore, in some embodiments, an electrostaticactuator may be used in conjunction with traditional actuators to createor vary a simulated texture on the surface of the external devices.

One of ordinary skill in the art will recognize that, in addition tovibrating or varying the coefficient of friction on a surface, othertechniques or methods can be used to output haptic effects. For example,in some embodiments, haptic effects may be output using a flexiblesurface layer configured to vary its texture based upon contact from asurface reconfigurable haptic substrate (including, but not limited to,e.g., fibers, nanotubes, electroactive polymers, piezoelectric elements,or shape memory allows) or a magnetorheological fluid. In anotherembodiment, haptic effects may be output by raising or lowering one ormore surface features, for example, with a deforming mechanism, air orfluid pockets, local deformation of materials, resonant mechanicalelements, piezoelectric materials, micro-electromechanical systems(“MEMS”) elements, thermal fluid pockets, MEMS pumps, variable porositymembranes, or laminar flow modulation.

Although in this example first haptic output device 122 is embedded in adevice external from computing device 101, i.e. first electronic device118, in other embodiments first haptic output device 122 may be embeddedwithin computing device 101. For example, computing device 101 maycomprise a laptop computer further comprising first haptic output device122. Also, while first and second haptic output devices 122 and 130 aredepicted as single devices, each haptic output device may comprise oneor more haptic output devices. For example, first haptic output device122 may comprise two or more actuators to provide different types ofeffects to a user. It will be recognized by those of ordinary skill inthe art that other embodiments may contain additional configurations ofthe first haptic output device 122, second haptic output device 130, andcomputing system 101.

Turning to memory 104, illustrative program components 124, 126, and 128are depicted to illustrate how a device can be configured in someembodiments to provide a shared haptic experience. In this example,detection module 124 configures processor 102 to monitor a virtualenvironment, such as a video game environment, for a haptic event, suchas a virtual gun shot. For example, module 124 may sample videogame datato track the presence of a haptic event and, if a haptic event ispresent, to track one or more of the type, duration, location,intensity, and/or other characteristics of the haptic event. Further, insome embodiments, detection module 124 configures processor 102 tomonitor the virtual environment for the receipt of haptic content fromother players or for the triggering of a sharing event, such as a buttonpress, which may indicate that computing device 101 should replicate(i.e., generate substantially the same effect as) another user's hapticcontent. For example, module 124 may sample network 110 data to trackthe presence of another user's shared haptic content. In such anembodiment, if another user's shared haptic content is present,detection module 124 may track one or more of the type, duration,location, and/or other characteristics of the one or more hapticeffects.

Haptic effect determination module 126 represents a program componentthat analyzes data regarding the shared haptic effect in order todetermine a haptic effect to locally generate. Particularly, hapticeffect determination module 126 may comprise code that determines, basedon the type, duration, location, and/or other characteristics of theshared haptic content, a haptic effect to locally output. Haptic effectdetermination module 126 may further base this determination on therelative position of a first user to a second user in real space, therelative position of a first user to a gaming device in real space, therelative position of a virtual character controlled by a first user to avirtual character controlled by a second user in a virtual environment,or a variety of other real or virtual environmental characteristics. Forexample, if the shared haptic effect comprises a long, intense (e.g.,high magnitude) vibration, haptic effect determination module 126 maydetermine that, because of a large distance between a first user'svirtual character and a second user's virtual character, the propereffect to output to the second user is a short, mild vibration.

In some embodiments, haptic effect determination module 126 may comprisecode that determines which actuators to use in order to generate thehaptic effect. For example, in some embodiments, the second user'sgaming device may comprise four actuators; two actuators verticallyaligned on the left side of the gaming device and two actuatorsvertically aligned on the right side of the user's gaming device. Insuch an embodiment, haptic effect determination module 126 may determinethat because a first user's virtual character is positioned northwest ofa second user's virtual character in a virtual environment, only theactuator in the front, left side of the second user's gaming deviceshould be actuated to generate the haptic effect.

In some embodiments, haptic effect determination module 126 may comprisecode that determines how best to output a local haptic effect that issubstantially similar to the shared haptic content. For example, if theshared haptic content comprises a series of vibrations of varyingintensity, haptic effect determination module 126 may determine how bestto locally output an effect that is substantially similar to a series ofvibrations of varying intensity. In such an embodiment, for example,haptic effect determination module 126 may determine that firstelectronic device 118 does not have the vibratory hardware, such as anERM or LRA, to directly implement a series of vibrations. In one suchembodiment, haptic effect determination module 126 may determine thatthe closest sensation to a series of vibrations of varying intensitythat can be output is a series of changes in the coefficient of frictionat the surface of the first electronic device 118 via an ESF actuator.

Haptic effect generation module 128 represents programming that causesprocessor 102 to generate and transmit a haptic signal to a hapticoutput device, such as first haptic output device 122, to generate thedetermined haptic effect. For example, generation module 128 may accessstored waveforms or commands to send to first haptic output device 122.As another example, haptic effect generation module 128 may receive adesired type of effect and utilize signal processing algorithms togenerate an appropriate signal to send to first haptic output device122. As a further example, a desired texture may be indicated to beoutput at the surface of first electronic devices 118, along with targetcoordinates for the texture, and an appropriate waveform sent to one ormore actuators to generate appropriate displacement of the surface offirst electronic devices 118 (and/or other device components) to providethe texture. Such an embodiment may be particularly applicable whereinthe first electronic device 118 comprises a touch screen display, suchas a smart phone. Some embodiments may utilize multiple haptic outputdevices in concert to generate the haptic effect. For instance, firsthaptic output device 122 may comprise a plurality of haptic outputdevices, wherein in order to generate a desired effect, one hapticoutput device changes the perceived coefficient of friction at thesurface of the first electronic device 118 while another haptic outputdevice vibrates the surface of the first electronic device 118.

FIG. 2 is another block diagram showing one embodiment of a system forproviding a shared haptic experience. The system comprises a firstelectronic device 202 and a second electronic device 204. In someembodiments, the system may comprise any number of electronic devices.In some embodiments, a first user may use first electronic device 202 tocontrol a virtual character in a videogame, and a second user may usesecond electronic device 204 to control a different virtual character inthe videogame. Second electronic device 204 comprises a “share” button214 for triggering sharing of the second user's haptic content with thefirst user. First electronic device 202 comprises a first haptic outputdevice 206, which in turn comprises actuators 210 for outputting ahaptic effect. Likewise, second electronic device 202 comprises a secondhaptic output device 208, which in turn comprises actuators (not shown)for outputting a haptic effect. In this example, first haptic outputdevice 206 comprises two actuators on the right side of first electronicdevice 202 and two actuators on the left side of first electronic device202. Further, the two actuators on each side of first electronic device202 are horizontally aligned. In other embodiments, the two actuators oneach side of first electronic device 202 may be vertically aligned. Insome embodiments, actuators 210 may be of a similar type. In otherembodiments, actuators 210 may be of different types. It will berecognized by those skilled in the art that any number, type, andarrangement of such actuators may be possible.

In some embodiments, first electronic device 202 may be different intype from second electronic device 204. For example, in one suchembodiment, first electronic device 202 comprises a smart phone andsecond electronic device 204 comprises a game console controller. Inother embodiments, first electronic device 202 and second electronicdevice 204 may be any combination of laptop computers, game consoles,desktop computers, smart phones, tablets, e-readers, portable gamingsystems, game console controllers, personal digital assistants, or otherelectronic devices. Consequently, in some embodiments, first hapticoutput device 206 and/or actuators 210 may be of a different type thansecond haptic output device 208 and/or actuators contained therein. Forexample, in one such embodiment, first haptic output device 206comprises a series of ERMs, while second haptic output device 208comprises a mechanism for deforming the surface of second electronicdevice 204.

FIG. 3 shows an external view of a system for providing a shared hapticexperience in one embodiment. In this example, the system comprises afirst electronic device 302, here a game console controller, whichcomprises a first haptic output device. The first electronic device 302is in communication with gaming system 306. In some embodiments, a firstuser may be playing, for example, an army game on gaming system 306. Thefirst user may control a virtual marine using first electronic device302. Likewise, a second user may also be playing the army game viasecond electronic device 304, here also a game console controller, andthrough which he or she can control his or her own virtual marine.

In such an embodiment, gaming system 306 may output various hapticeffects to second electronic device 304 as the second user plays thearmy game. For example, if the second user's virtual character getsshot, gaming system 306 may cause second electronic device 302 tovibrate. In some embodiments, the first user controlling firstelectronic device 302 may receive modified versions of the hapticeffects sent to the second user. In some such embodiments, firstelectronic device 302 may output haptic effects modified based on therelative position of first electronic device 302 to second electronicdevice 304 in real space. For example, in one embodiment, firstelectronic device 302 outputs haptic effects with strengths inverselyproportional to the relative distance 310 between the first electronicdevice 302 and second electronic device 304 in real space. That is, insuch an embodiment, as the distance 310 between the two electronicdevices increases, the strength of the haptic effect output to firstelectronic device 302 decreases proportionately. In other embodiments,first electronic device 302 may output haptic effects modified based onthe relative position of second electronic device 304 to gaming system306 in real space. For example, in one such embodiment, first electronicdevice 302 outputs haptic effects with strengths inversely proportionalto the relative distance 308 between second electronic device 304 andgaming system 306 in real space. Thus, if the first user is holdingsecond electronic device 304 ten feet from the gaming system 306, thehaptic effect transmitted to the first user is weaker than if the seconduser was holding second electronic device 304 three feet from the gamingsystem 306.

FIG. 4 shows another external view of a system for providing a sharedhaptic experience in one embodiment. In this example, the systemcomprises a first electronic device 402, here a game console controller,which comprises a first haptic output device 122. The first electronicdevice 402 is in communication with gaming system 406. In someembodiments, a first user may be playing, for example, an army game ongaming system 406. The first user may control a first character 408 inthe game, here a marine, using first electronic device 402. Likewise, asecond user may also playing the army game on gaming system 406. Thesecond user may control a second character 410 in the game using secondelectronic device 404, here also a game console controller, whichcomprises second haptic output device.

In such an embodiment, gaming system 406 may output various hapticeffects to second electronic device 404 as the second user plays thearmy game. For example, if the second user's virtual character is nearan explosion, gaming system 406 may cause second electronic device 402to vibrate via second haptic output device 130. In some embodiments, thefirst electronic device 402 may output modified versions of the hapticeffects sent to the second user. In some such embodiments, firstelectronic device 402 may output haptic effects modified based on therelative position of first character 408 to second character 410 in thevirtual environment. For example, in one embodiment, first electronicdevice 402 outputs haptic effects with strengths inversely proportionalto the relative virtual distance between first character 408 and secondcharacter 410. In such an embodiment, as the virtual distance betweenthe two virtual characters increases, the strength of the haptic effectoutput to first electronic device 402 decreases proportionately.

In some embodiments, the first electronic device 402 may output versionsof the haptic effects sent to the second user that are modified based onthe relative size of first character 408 to second character 410 in avirtual environment. For example, if the first character 408 is standingand the second character 410 is kneeling or crawling, first electronicdevice 402 may output haptic effects with strengths that are intensifiedcompared to those output by second electronic device 404. In anotherembodiment, first electronic device 402 may output intensified hapticeffects if second character's 410 virtual size is larger than firstcharacter's 408 virtual size. For example, in one such embodiment, ifsecond character 410 is a bear and first character 408 is an ant, andthe second user's haptic effect is a light vibration in response to avirtual car driving by, first electronic device 402 will output asubstantially intensified haptic effect, such as a long, intensevibration, due to the virtual size differential.

FIG. 5 shows one embodiment of an external view of system for providinga shared haptic experience. In this example, the system comprises afirst electronic device 502, here a game console controller, whichcomprises a first haptic output device. The first electronic device 502is in communication with gaming system 506. In some embodiments, a firstuser may be playing, for example, an army game on gaming system 506. Thefirst user may control a first character 508 in the game, here a marine,using first electronic device 502. Likewise, a second user may alsoplaying the army game on gaming system 506. The second user may controla second character 510 in the game using second electronic device 504,here also a game console controller, which comprises a second hapticoutput device.

In such an embodiment, gaming system 506 may output various hapticeffects to second electronic device 504 as the second user plays thearmy game. For example, if the second user's virtual character isdriving a virtual tank over a bumpy road, gaming system 506 may causesecond haptic output device to vibrate. In some embodiments, firstelectronic device 502 may output modified versions of the haptic effectssent to the second user. In some such embodiments, the modifications maybe based on a virtual environmental characteristic 512. In someembodiments, virtual environmental characteristic 512 may comprise oneor more of a characteristic of an object or barrier, an ambienttemperature, a characteristic of a barrier, a humidity level, or adensity of a medium in which a character is located. In FIG. 5,environmental characteristic 512 comprises a barrier that is a virtualbrick wall. In one such embodiment, first electronic device 502 mayoutput versions of haptic effects sent to second electronic device 504with dampened strengths because environmental characteristic 512, abrick wall, is positioned between first character 508 and secondcharacter 510. In another embodiment, environmental characteristic 512may comprise the medium in which the first and/or second characters 508or 510 are located. For instance, in one such embodiment, the firstcharacter 508 may be swimming in water while the second character 510 ison land. In such an embodiment, the haptic effect transmitted to thefirst electronic device 502 may be an dampened version of the hapticeffect transmitted to the second electronic device 504 because water isdenser than air.

In some embodiments, the environmental characteristic 512 may comprisephysical properties, like the Doppler effect. For example, in one suchembodiment, as second character 510 drives past first character 508 in avirtual car, first electronic device 502 outputs versions of hapticeffects sent to second electronic device 504 with characteristicsmodified based on the Doppler effect. In another embodiment,environmental characteristic 512 may comprise a virtual ambienttemperature or humidity. In such an embodiment, first electronic device502 may output versions of haptic effects sent to second electronicdevice 504 with characteristics modified based on the virtual ambienttemperature or humidity. For example, in one embodiment, firstelectronic device 502 outputs versions of haptic effects sent to secondelectronic device 504 with their strengths dampened becauseenvironmental characteristic 512 comprises high virtual humidity.

Although the environmental characteristic 512 shown in FIG. 5 is part ofa virtual environment, in some embodiments, environmental characteristic512 may be present in real space. In some embodiments, environmentalcharacteristic 512 may comprise one or more of an ambient temperature, acharacteristic of a barrier, a humidity level, or a density of a mediumin real space. For example, in one embodiment, first electronic device502 comprises a temperature sensor. In such an embodiment, firstelectronic device 402 can determine the temperature in real space, suchas the room in which users are playing the army video game, and vary itshaptic output based on the temperature determination. In some suchembodiments, first electronic device 402 may output versions of hapticeffects sent to second electronic device 504 modified based on thetemperature in real space. Likewise, in some embodiments, firstelectronic device 502 may output versions of haptic effects sent tosecond electronic device 504 with characteristics modified based on aphysical obstruction in real space, like a real brick wall between firstelectronic device 502 and second electronic device 504.

FIG. 6 shows an external view of system for providing a shared hapticexperience in one embodiment. In this example, the system comprises afirst electronic device 602, which in this example is a game consolecontroller, in communication with a computing device, which in thisexample is a gaming system 606. Gaming system 606 is connected to theinternet 608 for multiplayer gameplay. In some embodiments, a first usermay be playing, for example, a basketball game on gaming system 606 andmay control his virtual basketball player using first electronic device602. Likewise, a second user may be playing the basketball game via asecond electronic device 604, which in this example is a smartphone,such as an iPhone or Android phone. In this example, second electronicdevice 604 is wirelessly connected to the internet 608 for multiplayergameplay. First electronic device 602 comprises a first haptic outputdevice and second electronic device 604 comprises a second haptic outputdevice.

In such an embodiment, gaming system 606 may output various hapticeffects to first electronic device 602 as the first user plays thebasketball game. For example, if the first user's virtual charactertakes a shot that bounces off the rim of the basketball net, gamingsystem 606 may cause first electronic device 602 to vibrate.

In one such embodiment, first electronic device 602 may comprise a“share” button, through which the first user may initiate the sharing ofhis haptic content with the second user. In such an embodiment, thefirst user may press a “share” button on a the first electronic device602, indicating he or she wants to share his or her haptic feedback witha second user. Thereafter, the gaming system 606 may generate an effectto be delivered to the second electronic device 604 that issubstantially the same as the effect that was delivered to the firstelectronic device 602. For example, in one embodiment, the second usermay not actually be participating in playing the basketball game, butrather may be simply observing in order to learn how to play the game.In such an embodiment, the first user may press the “share” button onfirst electronic device 602, triggering haptic sharing among the twousers. In such an embodiment, second electronic device 604 replicatesany haptic effects delivered to first electronic device 602, such asvibrations, as a result of gameplay.

In other embodiments, the first user may share not only haptic contentwith the second user by pressing the “share button,” but also his videodata, audio data, and/or gameplay controls. In such an embodiment, thesecond user may take over control of the first user's virtual characterand the first user may become an observer. In some such embodiments,second electronic device 604 may replicate any haptic effects deliveredto first electronic device 602, such as vibrations, as a result ofgameplay.

In some embodiments, a software-generated event, rather than a buttonpress, may trigger sharing of a first user's haptic content with asecond user. For example, in some embodiments, the game system 606 mayinitiate sharing of a first user's haptic feedback with a second userupon the death of the second user's virtual character in a multiplayergame. In another embodiment, the first user may be playing a virtualbasketball game against the second user. If the second user commits avirtual fowl against the first user, the first user may be entitled totwo “free throws,” in which the first user may take unopposed shots froma “foul line” on the virtual basketball court. In response to the foulevent, the game may disable the second user's controls and change thesecond user's virtual perspective to that of the first user while thefirst user is allowed to take his or her free throws. Further, in someembodiments, the change in virtual perspective may automatically triggersharing of the first user's haptic content with the second user. In suchan embodiment, if the first user takes a free throw and misses, the ballhitting the virtual basketball net's rim, the first electronic device602 may output a haptic effect, such as a vibration. Likewise, becausehaptic sharing has been triggered, the second electronic device 604outputs a similar haptic effect.

In some embodiments, the first user may press the “share” button onfirst electronic device 602, which may begin recording of his or herhaptic content. In some embodiments, the second user may be able totrigger a playback event, such as by a button press, and subsequentlyplay back the haptic content on second electronic device 604. In onesuch embodiment, second electronic device 604 replicates the savedhaptic content as closely as possible. For example, a first user maypress a “share” button on a game controller indicating he or she wantsto share his or her haptic content with a second user. Thereafter,haptic content (e.g., haptic effects) generated for the first user arerecorded. Upon the occurrence of a playback event, such as asoftware-generated event, the saved haptic content is delivered to thesecond user. In some embodiments, the first user's audio and/or videocontent may be recorded in addition the first user's haptic content whenhe or she presses the “share button.” Upon the occurrence of a playbackevent, the saved haptic content as well as the saved audio and/or videocontent may be delivered to the second user.

It should be recognized that although the embodiments shown in FIGS. 3-6depict only a first electronic device 302 and a second electronic device303, in some embodiments, a plurality of such devices may be used tooutput haptic effects of the types described throughout thisspecification.

Additional Embodiments of Systems for Providing a Shared HapticExperience

In some embodiments, the system may comprise one or more automobiles. Insome such embodiments, a first user may be, for example, driving a firstautomobile on the highway. The first user may control the firstautomobile via a steering wheel, which may comprise a first hapticoutput device. The first automobile is in communication with the firsthaptic output device. Likewise, a second user may also be driving asecond automobile on the highway. The second user may control the secondautomobile via a steering wheel, which may comprise a second hapticoutput device. The second automobile is in communication with the secondhaptic output device. In some embodiments, one or both automobiles mayhave blind spot detection enabled, in which an automobile can detect ifanother vehicle in its blind spot and output an associated alert to oneor both drivers.

In some embodiments, upon the first user activating the left or rightblinker, the first automobile may detect the presence of the secondautomobile in the first user's blind spot. Based on this detection, thefirst user's automobile may cause the first haptic output device tooutput a haptic effect to the first user. In some embodiments, thehaptic effect may comprise a vibration. Further, in some embodiments,the magnitude of the vibration may change based on the distance betweenthe first and second automobiles. For example, in one such embodiment,the first user may activate his left blinker signal. In such anembodiment, the first user's automobile may detect the presence of thesecond automobile in the first user's blind spot, determine that thedistance between the first and second automobiles is half a meter, andoutput a haptic effect via the first haptic output device comprising anintense (e.g., high magnitude) vibration. In some embodiments, thehaptic effect may be output on the side of the first user's steeringwheel corresponding to the side of the first automobile on which thesecond automobile is detected. For example, if the second automobile isdetected in the blind spot on the left side of the first automobile, thefirst automobile may output a haptic effect on the left side of thesteering wheel.

Further, in some embodiments, the second automobile (via the secondhaptic output device) may output haptic effects based on the hapticeffects sent to the first user in the first automobile. In some suchembodiments, the second automobile may output a version of the hapticeffect sent to the first user in which the location on the steeringwheel that the first haptic effect was output is modified. For example,if the first haptic effect is output to the first user on the left sideof the first user's steering wheel, the modified haptic effect may beoutput to the second user on the right side of the second user'ssteering wheel. In some embodiments, the second automobile may output aversion of the first haptic effect sent to the first user in which themagnitude of the first haptic effect is modified. For example, in oneembodiment, the second automobile outputs a version of the first hapticeffect with the magnitude reduced by 50%. In some embodiments, how thefirst haptic effect is modified in order to generate the second hapticeffect may change as the distance between the two automobiles changes.For example, in some embodiments, if the two automobiles are more thanone meter apart, the second automobile may output a version of the firsthaptic effect modified such that its magnitude is reduced by 50%. As thetwo automobiles move closer together, the amount that the magnitude ofthe first haptic effect is reduced in order to generate the secondhaptic effect may decrease, so that by the time the two automobiles arewithin two-tenths of a meter, there is no magnitude reduction betweenthe first haptic effect and the second haptic effect.

One of ordinary skill in the art will recognize that haptic effects maybe shared among a plurality of automobiles, and that a multitude ofother haptic triggering events (e.g., a change in the automobile's radiostation, a GPS navigation event, pressing the breaks or the gas pedal,the failure of an automobile component, or a low car battery), hapticoutput device configurations (e.g., placing the haptic output devices inthe gear shifter, the break or gas pedal, or a car seat), and hapticeffects (e.g, a perceived change in a coefficient of friction or atexture) are possible.

In some embodiments, the system may comprise a virtual training program.In some such embodiments, an expert may use a first electronic device,which comprises a first haptic output device, to perform a task (e.g., asurgery). As the expert performs the task, haptic effects may bedelivered to the expert via the first haptic output device upon theoccurrence of an event (e.g., if the expert touches a specific portionof the patient's body). In some embodiments, a student may use a secondelectronic device, which comprises a second haptic output device, tolearn how to perform the task.

In some embodiments, the haptic content delivered to the first hapticoutput device is immediately transmitted to the second electronicdevice, which outputs the haptic effect. In other embodiments, theexpert may be able to record the haptic content, as well as any videoand/or audio content, for subsequent playback upon the occurrence of aplayback event. In some such embodiments, the student can initiate theplayback event by, for example, pressing a button, which delivers thesaved haptic content, and any saved audio and/or video content, to thesecond electronic device. The second electronic device then delivers thehaptic content to the second haptic output device, which outputs thehaptic effects to the student.

In some embodiments, the second electronic device outputs modifiedversions of haptic content delivered to the first haptic output device.For example, in some embodiments, the second electronic device mayoutput a version of an effect sent to the first haptic output devicewith the magnitude amplified. Such a magnitude increase may allow thestudent to more easily detect what might otherwise be a subtle, butimportant, haptic cues.

Illustrative Methods for Providing a Shared Haptic Experience

FIG. 7 is a flowchart showing a method for providing a shared hapticexperience in one embodiment. In some embodiments, the steps in FIG. 7may be implemented in program code that is executed by a processor, forexample, the processor in a general purpose computer, a mobile device,or a server. In some embodiments, these steps may be implemented by agroup of processors. The steps below are described with reference tocomponents described above with regard to system 100 shown in FIG. 1.

Method 700 begins at step 702, with the receipt of a first haptic effectsignal, the first haptic signal based at least in part on a haptic event(e.g., a user's character getting shot in a game, the completion of alevel, driving a virtual vehicle over a bumpy virtual road). Detectionmodule 124 or processor 102 may detect the first haptic effect signal.

The method 700 continues at step 704 when processor 102 determines asecond haptic effect based at least in part on the first haptic effectand a characteristic external to the haptic event.

In some embodiments, the characteristic external to the haptic event maycomprise a relative position of a first user with respect to a seconduser. In some embodiments, the relative positions of the first user andthe second user comprise the physical positions of the first user andsecond user in real space. In some such embodiments, the physicalpositions of the first electronic device 122, controlled by the firstuser, and the second electronic device 120, controlled by the seconduser, may be used as reasonable approximations of the physical positionsof the first user and the second user in real space. First and secondelectronic devices 118 and 120 may comprise one or more of anaccelerometer, a gyroscope, an inclinometer, a global positioning system(GPS) unit, or another sensor for determining the positions of firstelectronic device 118 and second electronic device 120, respectively, inreal space. In some such embodiments, processor 102 may receive sensorsignals from a first accelerometer and a first gyroscope embedded withinfirst the electronic device 118. Similarly, processor 102 may receivesensor signals from a second accelerometer and a second gyroscopeembedded within the second electronic device 120. Based on these sensorsignals, processor 102 may determine (via, for example, algorithms or alookup table) the relative positions of the first electronic device 118and the second electronic device 120 in real space. In such anembodiment, processor 102 may further determine the relative position offirst electronic device 118 with respect to second electronic device 120in real space.

In other embodiments, the relative positions of the first user and thesecond user comprise virtual positions of a virtual characterscontrolled by the first user and second user in a virtual environment.In such an embodiment, processor 102 may determine the relative positionof a virtual character controlled by the first user and the relativeposition of a virtual character controlled by the second user directlyfrom data about the virtual environment. For example, in someembodiments, processor 102 may sample network 110 data to track thelocation of the first user's virtual character and the second user'svirtual character. Based on the sampled data, processor 102 maydetermine the virtual positions of the first user's virtual characterand the second user's virtual character, respectively. In such anembodiment, processor 102 may further determine the relative position offirst user's virtual character with respect to the second user's virtualcharacter in the virtual environment.

In some embodiments, the characteristic external to the haptic event maycomprise an environmental characteristic. In some embodiments, theenvironmental characteristic may be an environmental characteristic inreal space. In such an embodiment, computing system 101 may comprise oneor more sensors such as a temperature sensor, a humidity sensor, acamera, an accelerometer, a gyroscope, a sonar device, and/or otherelectronic devices configured to send sensor signals to processor 102.Processor 102 may determine an environmental characteristic directlyfrom the sensor signal, or may apply the sensor signal data to analgorithm or a lookup table to determine the environmentalcharacteristic. For example, in one such embodiment, processor 102receives a sensor signal from a humidity sensor or temperature sensorand determines the humidity or temperature in the environment in whichthe first user and/or second user may be located. In another embodiment,processor 102 receives a sensor signal from a camera or sonar device anddetermines any environmental obstructions, like walls, in theenvironment in which the first user and/or second user may be located.In still another embodiment, processor 102 determines, based on a camerasensor signal, the medium in which the first user or second user islocated, for example, if the first user is located in water. In yetanother such embodiment, processor 102 receives sensor signals from acamera and determines whether or not the first user or second user is ina vehicle, the size of the vehicle, and/or the direction or velocity inwhich the vehicle is moving.

In other embodiments, the environmental characteristic may be a virtualenvironmental characteristic in a virtual environment. In such anembodiment, processor 102 may determine the environmental characteristicdirectly from data about the virtual environment. For example, in someembodiments, processor 102 samples network 110 data to track thepresence or absence of environmental characteristics. Based on thesampled data, processor 102 may determine an environmentalcharacteristic. In some embodiments, processor 102 may determine thevirtual environmental characteristic directly from the sampled data, ormay apply the sampled data to an algorithm or a lookup table todetermine the virtual environmental characteristic. For example, in onesuch embodiment, processor 102 samples network data and applies analgorithm to determine the presence of an object, e.g. a virtual brickwall, in the virtual environment. Similarly, in some embodiments,processor 102 may sample network data and determine that theenvironmental characteristic comprises a physical principle, such as theDoppler effect.

In some embodiments, processor 102 may apply data about thecharacteristics of the first haptic effect to an algorithm in order todetermine the strength, duration, location, and/or other characteristicsof the second haptic effect. For example, processor 102 may use thestrength and intensity characteristics of the first haptic effect todetermine what second haptic effect to generate and through whichactuators to generate it in the second electronic device 118. In someembodiments, the processor 102 may determine the second haptic effectbased on the real or virtual relative position of the first user withrespect to the second user, as determined in step 704, or any real orvirtual environmental characteristics, as determined in step 706.

The processor 102 may rely on programming contained in haptic effectdetermination module 126 to determine the second haptic effect. Forexample, in some embodiments, haptic effect determination module 126 maydetermine the haptic effect to output, and which actuators to use tooutput the effect, based on algorithms. In some embodiments, suchalgorithms may assess the relative virtual position of a second user'svirtual character with respect to a first user's virtual character. Forexample, in one embodiment, if a first user's virtual character is 40meters northeast of the second user's virtual character, the processor102 determines that the second haptic effect should be generated byactuators in the front right side of the second electronic device 120.Further, in such an embodiment, processor 102 may determine that thesecond haptic effect should be a substantially dampened version of thefirst haptic effect due to the 40-meter distance between the firstuser's virtual character and the second user's virtual character.

In some embodiments, processor 102 may determine the second hapticeffect to output, and which actuators to use to output the second hapticeffect, based on algorithms that assess the relative position of firstelectronic device 118 to second electronic device 120 in real space. Forexample, in one embodiment, if first electronic device 118 is a halfmeter northeast of second electronic device 120 in real space, theprocessor 102 determines that the second haptic effect should begenerated by actuators in the front right side of the second electronicdevice 120. Further, in such an embodiment, processor 102 may determinethat the second haptic effect should be not be dampened due to the merehalf meter distance between the first electronic device 118 and thesecond electronic device 120.

In some embodiments, haptic effect determination module 126 may comprisea haptic actuator lookup table. In one such embodiment, the lookup tablemay comprise data with a haptic actuator of one type and a plurality ofhaptic actuators of different types that are capable of outputtingsimilar haptic effects. For example, in one such embodiment, the lookuptable may comprise data with an ERM and data with a plurality of otherhaptic devices capable of outputting similar haptic effects as an ERM,such as a LRA, piezoelectric actuator, an electric motor, or anelectro-magnetic actuator. In such an embodiment, processor 102 mayreceive data indicating that the first haptic effect was generated inthe first electronic device 118 by a signal of a specific intensity andduration designated for a specific type of haptic actuator, for example,an ERM. Based on this data, in one such embodiment, processor 102 mayconsult the lookup table to determine what hardware in second hapticoutput device 130 can be used as a substitute to generate a secondhaptic effect with characteristics similar to the first haptic effect.For example, if second haptic output device 130 does not contain an ERMbut does contain an electric motor, processor 102 consults the lookuptable and determines that the electric motor may be able to act as asuitable substitute to generate the second haptic effect.

In other embodiments, processor 102 may determine a default hapticeffect. For example, in one such embodiment, second haptic output device130 may not be able to generate a haptic effect, such as a vibration,due to lack of appropriate hardware. However, in such an embodiment,second haptic output device 130 may comprise an ESF actuator capable ofvarying the perceived coefficient of friction on the surface of secondelectronic device 120, which is the default haptic effect. Thus, in onesuch embodiment, processor 102 associates any first haptic effectcomprising a vibration with a default second haptic effect comprising aperceived change in the coefficient of friction at the surface of secondelectronic device 120.

In some embodiments, processor 102 may determine a second haptic effectbased on data in a lookup table. In some such embodiments, the lookuptable may comprise data with environmental characteristics and aplurality of haptic effect modifications. For example, in one suchembodiment, the lookup table may comprise data with a brick wall and ahaptic effect modification, such as a decrease in haptic effectintensity by 30%. In such an embodiment, if there is a brick wallbetween a second user's virtual character and the first user's virtualcharacter, processor 102 consults the lookup table and determines thatthe second haptic effect should be a modified version of the firsthaptic effect with 30% less intensity.

In some embodiments, processor 102 may make its determination based inpart on other outside factors, such as the state of the gaming device.For example, in one such embodiment, processor 102 may make itsdetermination partially on the amount of battery life the gaming devicehas. In such an embodiment, haptic effect determination module 126 mayreceive data indicating that the first haptic effect comprised a short,intense vibration. Because the battery life on the second electronicdevice 120, for example a smart phone, may be low, processor 102 maydetermine that a longer, but significantly less intense, vibration mayachieve substantially the same effect without depleting the battery lifeto a detrimental level.

The method 700 continues at step 706 with the detection of a triggeringevent. Detection module 124 or processor 102 may detect the triggeringevent. In some embodiments, the trigger event may initiate storing ofsecond haptic effects for subsequent playback. In some embodiments, thetrigger event may initiate the sharing of haptic feedback between users.The triggering event may be user generated, such as by a button press,or software generated, such as when a virtual character is killed in avideo game.

The method 700 continues when processor 102 generates a second hapticeffect signal 710 and transmits the second haptic signal to the secondhaptic output device 712, which outputs the haptic effect. The secondhaptic effect signal is based at least in part on the second hapticeffect. In some embodiments, the processor 102 may access drive signalsstored in memory 104 and associated with particular haptic effects. Inone embodiment, a signal is generated by accessing a stored algorithmand inputting parameters associated with an effect. For example, in suchan embodiment, an algorithm may output data for use in generating adrive signal based on amplitude and frequency parameters. As anotherexample, a second haptic signal may comprise data sent to an actuator tobe decoded by the actuator. For instance, the actuator may itselfrespond to commands specifying parameters such as amplitude andfrequency.

Additional Embodiments of Methods for Providing a Shared HapticExperience

FIGS. 8 is a flowchart showing another method for providing a sharedhaptic experience in one embodiment. In some embodiments, the steps inFIG. 8 may be implemented in program code that is executed by aprocessor, for example, the processor in a general purpose computer, amobile device, or a server. In some embodiments, these steps may beimplemented by a group of processors. The steps below are described withreference to components described above with regard to system 100 shownin FIG. 1.

Method 800 begins at step 802, with the detection of a triggering eventindicating that a plurality of first haptic effects should be stored forlater playback. Detection module 124 or processor 102 may detect thetriggering event. The triggering event may be user generated, such as bya button press, or software generated, such as when a virtual characteris killed in a video game.

The method 800 continues at step 804 when processor 102 determines asecond plurality of haptic effects to generate based at least in part oneach of a first plurality haptic effects. The processor 102 may rely onprogramming contained in haptic effect determination module 126 todetermine the second plurality of haptic effects. In some embodiments,processor 102 may use any of the methods discussed with respect to FIG.7 to determine each of the second plurality of haptic effects.

The method 800 continues at step 806 when processor 102 causes thesecond plurality of haptic effects to be stored in memory 104 forsubsequent playback. Processor 102 may store the second plurality ofhaptic effects by type, name, duration, intensity, timestamp, or anyother characteristics such that they can later be recalled and output ina sequential, or in some embodiments nonsequential, manner.

Method 800 continues at step 808 where system 100 waits for an eventindicating the saved plurality of second haptic effects should be playedback. The event may be user generated, such as by pressing a button, orsoftware generated, such as by the death of a virtual character in avideo game. If the playback event occurs, the method 800 continues tostep 810. Otherwise, the method 800 returns to steps 804 and 806, whereit continues to determine and store the second plurality of hapticeffects.

In response to the playback event, the method 800 continues at steps 810and 812 where processor 102 generates a second plurality of hapticeffect signals based on the stored second plurality of haptic effectsand transmits each of the second plurality of haptic signals to thesecond haptic output device 130, which outputs the haptic effects. Insome embodiments, the processor 102 may access drive signals oralgorithms stored in memory 104 and associated with particular hapticeffects to generate the second plurality of haptic effect signals. Insome embodiments, processor 102 may use any of the methods discussedwith respect to FIG. 7 to generate and transmit each of the secondplurality of haptic signals to the second haptic output device 130.

Advantages of a Shared Haptic Experience

There are numerous advantages of providing shared haptic experiences.Such systems may provide more compelling gaming experiences by allowingusers to feel the sensations their fellow game players feel. Forexample, if a first user's gaming device vibrates because a virtualcharacter controlled by the first user is shot, a second user's gamingdevice may output substantially the same, or a modified version of, thevibration, providing a more interactive experience. This may increaseoverall user satisfaction.

In some embodiments, sharing haptic feedback among users may lead toimproved collaboration when performing tasks in a virtual environment.This is because users will have a better understanding of what actionstheir teammates are taking by feeling the same, or modified versions of,the associated haptic responses. For example, two users may be playing agame in which they have to collaborate to achieve a military objective.The first user may be controlling a virtual gunner character, while thesecond user is controlling a virtual medic character. As the first usermanipulates his or her virtual character to take part in an attack on amilitary stronghold, the first user's gaming device may vibrate if hisor her virtual gunner character gets shot. In some embodiments, thishaptic content may be modified and shared with the second user, causingthe second user's gaming device to also vibrate. For example, in such anembodiment, if the gunner character is shot 500 meters northwest of themedic character's position, the second user feels a weak vibration onthe front left side of his or her controller. This may indicate to thesecond user how far away, and in what direction, the first user'scharacter may be located so he may render aid.

Further, some embodiments may improve virtual training programs. Forexample, an expert may be able to play a videogame or perform a task ina virtual environment and save his audio, video, and, in someembodiments, haptic content. In such an embodiment, a novice may be ableto play back the saved content and learn how to play the game or performthe task. Playing back haptic content, in addition to audio and video,may make such learning more effective.

General Considerations

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process that is depicted as aflow diagram or block diagram. Although each may describe the operationsas a sequential process, many of the operations can be performed inparallel or concurrently. In addition, the order of the operations maybe rearranged. A process may have additional steps not included in thefigure. Furthermore, examples of the methods may be implemented byhardware, software, firmware, middleware, microcode, hardwaredescription languages, or any combination thereof. When implemented insoftware, firmware, middleware, or microcode, the program code or codesegments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of steps may be undertaken before, during, or after theabove elements are considered. Accordingly, the above description doesnot bound the scope of the claims.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

Embodiments in accordance with aspects of the present subject matter canbe implemented in digital electronic circuitry, in computer hardware,firmware, software, or in combinations of the preceding. In oneembodiment, a computer may comprise a processor or processors. Theprocessor comprises or has access to a computer-readable medium, such asa random access memory (RAM) coupled to the processor. The processorexecutes computer-executable program instructions stored in memory, suchas executing one or more computer programs including a sensor samplingroutine, selection routines, and other routines to perform the methodsdescribed above.

Such processors may comprise a microprocessor, a digital signalprocessor (DSP), an application-specific integrated circuit (ASIC),field programmable gate arrays (FPGAs), and state machines. Suchprocessors may further comprise programmable electronic devices such asPLCs, programmable interrupt controllers (PICs), programmable logicdevices (PLDs), programmable read-only memories (PROMs), electronicallyprogrammable read-only memories (EPROMs or EEPROMs), or other similardevices.

Such processors may comprise, or may be in communication with, media,for example tangible computer-readable media, that may storeinstructions that, when executed by the processor, can cause theprocessor to perform the steps described herein as carried out, orassisted, by a processor. Embodiments of computer-readable media maycomprise, but are not limited to, all electronic, optical, magnetic, orother storage devices capable of providing a processor, such as theprocessor in a web server, with computer-readable instructions. Otherexamples of media comprise, but are not limited to, a floppy disk,CD-ROM, magnetic disk, memory chip, ROM, RAM, ASIC, configuredprocessor, all optical media, all magnetic tape or other magnetic media,or any other medium from which a computer processor can read. Also,various other devices may comprise computer-readable media, such as arouter, private or public network, or other transmission device. Theprocessor, and the processing, described may be in one or morestructures, and may be dispersed through one or more structures. Theprocessor may comprise code for carrying out one or more of the methods(or parts of methods) described herein.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

1-20. (canceled)
 21. A system comprising: an automotive user interfacedevice configured to be positioned in a vehicle; a haptic output devicecoupled to the automotive user interface device; a sensor that isconfigured to be positioned separately from the automotive userinterface device in the vehicle, the sensor being configured to detectan event and transmit a sensor signal indicative of the event; and aprocessor communicatively coupled to the haptic output device and thesensor, the processor being configured to: receive the sensor signalfrom the sensor; determine the event based on the sensor signal;determine a haptic effect based on the event; and cause the hapticoutput device to output the haptic effect to the automotive userinterface device.
 22. The system of claim 21, wherein the automotiveuser interface device includes a steering wheel, gear shifter, car seat,brake pedal, or acceleration pedal.
 23. The system of claim 21, whereinthe sensor is configured to detect an object being in a particularlocation that is external to the vehicle, and wherein the event is basedon the object being at the particular location.
 24. The system of claim23, wherein the processor is configured to: determine a distance betweenthe object and a surface of the vehicle based on the sensor signal; anddetermine the haptic effect based on the distance.
 25. The system ofclaim 23, wherein the particular location is a blind spot of thevehicle.
 26. The system of claim 21, wherein the haptic output deviceincludes a plurality of haptic output devices coupled to the automotiveuser interface device, and wherein the processor is configured to:determine a relationship between the sensor and a particular hapticoutput device among the plurality of haptic output devices, wherein therelationship is based on a spatial correlation between the physicalpositions of the particular haptic output device and the sensor on thevehicle; based on determining the relationship, select the particularhaptic output device from among the plurality of haptic output devicesfor use in outputting the haptic effect; and cause the particular hapticoutput device to output the haptic effect.
 27. The system of claim 21,wherein the event comprises: a change in a radio station, a navigationevent, a failure of a vehicle component, a low battery, or aninteraction with a vehicle pedal.
 28. The system of claim 21, whereinthe haptic effect is a first haptic effect, and wherein the processor isfurther configured to transmit a communication to a different vehiclebased on the event, the communication being configured to cause anotherhaptic output device of the different vehicle to output a second hapticeffect.
 29. A method comprising: receiving, by a processor, a sensorsignal from a sensor coupled to a vehicle, the sensor signal indicatingan event; determining, by the processor, the event based on the sensorsignal; determining, by the processor, a haptic effect based on theevent; and causing, by the processor, a haptic output device to outputthe haptic effect to an automotive user interface device, wherein thesensor is positioned separately from the automotive user interfacedevice in the vehicle.
 30. The method of claim 29, wherein theautomotive user interface device includes a steering wheel, gearshifter, car seat, brake pedal, or acceleration pedal.
 31. The method ofclaim 29, wherein the sensor is configured to detect an object being ina particular location that is external to the vehicle, and wherein theevent is based on the object being at the particular location.
 32. Themethod of claim 31, further comprising: determining a distance betweenthe object and a surface of the vehicle based on the sensor signal; anddetermining the haptic effect based on the distance.
 33. The method ofclaim 29, wherein the haptic output device includes a plurality ofhaptic output devices coupled to the automotive user interface device,and further comprising: determining a relationship between the sensorand a particular haptic output device among the plurality of hapticoutput devices, wherein the relationship is based on a spatialcorrelation between the physical positions of the particular hapticoutput device and the sensor on the vehicle; based on determining therelationship, selecting the particular haptic output device from amongthe plurality of haptic output devices for use in outputting the hapticeffect; and causing the particular haptic output device to output thehaptic effect.
 34. The method of claim 29, wherein the event comprises:a change in a radio station, a navigation event, a failure of a vehiclecomponent, a low battery, or an interaction with a vehicle pedal. 35.The method of claim 29, further comprising transmitting a communicationto a different vehicle based on the event, the communication beingconfigured to cause another haptic output device of the differentvehicle to output another haptic effect.
 36. A non-transitorycomputer-readable medium comprising program code that is executable by aprocessor to accuse the processor to: receive a sensor signal indicatingan event from a sensor; determine the event based on the sensor signal;determine a haptic effect based on the event; and cause a haptic outputdevice to output the haptic effect to an automotive user interfacedevice, wherein the sensor is configured to be positioned separatelyfrom the automotive user interface device in a vehicle.
 37. Thenon-transitory computer-readable medium of claim 36, wherein theautomotive user interface device includes a steering wheel, gearshifter, car seat, brake pedal, or acceleration pedal.
 38. Thenon-transitory computer-readable medium of claim 36, wherein the sensoris configured to detect an object being in a particular location that isexternal to the vehicle, and wherein the event is based on the objectbeing at the particular location.
 39. The non-transitorycomputer-readable medium of claim 38, further comprising program codethat is executable by the processor to cause the processor to: determinea distance between the object and a surface of the vehicle based on thesensor signal; and determine the haptic effect based on the distance.40. The non-transitory computer-readable medium of claim 36, wherein thehaptic output device includes a plurality of haptic output devicescoupled to the automotive user interface device, and further comprisingprogram code that is executable by the processor to cause the processorto: determine a relationship between the sensor and a particular hapticoutput device among the plurality of haptic output devices, wherein therelationship is based on a spatial correlation between the physicalpositions of the particular haptic output device and the sensor on thevehicle; based on determining the relationship, select the particularhaptic output device from among the plurality of haptic output devicesfor use in outputting the haptic effect; and cause the particular hapticoutput device to output the haptic effect.
 41. The non-transitorycomputer-readable medium of claim 36, further comprising program codethat is executable by the processor to cause the processor to transmit acommunication to a different vehicle based on the event, thecommunication being configured to cause another haptic output device ofthe different vehicle to output another haptic effect.